package main

import (
	"fmt"
	"sync"
)

type Foo struct {
}

func (f Foo) first() {
	fmt.Print("first")
}
func (f Foo) second() {
	fmt.Print("second")
}
func (f Foo) third() {
	fmt.Print("third")
}
func numif(num int) {
	if num == 1 {
		Foo.first(Foo{})
	} else if num == 2 {
		Foo.second(Foo{})
	} else if num == 3 {
		Foo.third(Foo{})
	}
}

var wg = sync.WaitGroup{}

func main() {
	nums := [3]int{}
	fmt.Scanf("%d %d %d", &nums[0], &nums[1], &nums[2])
	wg.Add(3)
	go func() {
		defer wg.Done()
		numif(nums[0])
		go func() {
			defer wg.Done()
			numif(nums[1])
			go func() {
				defer wg.Done()
				numif(nums[2])
			}()
		}()
	}()
	wg.Wait()

}
